前天弄出了音樂,昨天弄出了背景。
今天想要讓人物顯現。
今天一樣,上程式碼
import pygame
import random
pygame.init()
black = (0, 0, 0)
green = (91,231,196)
gameNaughtybox = pygame.display.set_mode((600,600))
pygame.Surface((600,600))
dest = (0,0)
pygame.display.set_caption ("Naughty Box")
player = pygame.image.load('cutegirlfiles/Idle (1).png')
walkRight = [pygame.image.load('cutegirlfiles/Walk (1).png'), pygame.image.load('cutegirlfiles/Walk (2).png'), pygame.image.load('cutegirlfiles/Walk (3).png'), pygame.image.load('cutegirlfiles/Walk (4).png'), pygame.image.load('cutegirlfiles/Walk (5).png')]
walkLeft = [pygame.image.load('Angel-1-7.png'), pygame.image.load('Angel-1-6.png')]
character=[pygame.image.load ('cutegirlfiles/Idle (1).png')]
bg = pygame.image.load('pipo-battlebg007b.png')
gameNaughtybox.blit(bg,(0,0))
pygame.display.flip()
clock = pygame.time.Clock()
x = 50
y = 50
width =64
height = 64
vel = 8
isJump = False
jumpCount = 15
left = False
right =False
walkCount = 0
def redrwnewWindow():
global walkCount
gameNaughtybox.blit(bg,(0,0))
if walkCount + 1 >= 27:
walkCount = 0
if left:
gameNaughtybox.blit ((walkLeft)[walkCount//3. (x,y)])
walkCount +=1
elif right:
gameNaughtybox.blit (walkRight[walkCount//3], (x,y))
walkCount +=1
else:
gameNaughtybox.blit(character, (x,y))
pygame.display.update()
run = True
while run:
clock.tick(29)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys [pygame.K_LEFT] and x > vel:
x -= vel
left = True
right = False
bg.scroll(5,0)
elif keys [pygame.K_RIGHT] and x < 600 - width - vel:
x += vel
left = False
right = True
bg.scroll(-5,0)
elif keys [pygame.K_UP] and y > vel:
y -= vel
right = True
left = True
elif keys [pygame.K_DOWN] and y < 600 - height - vel:
y += vel
right = False
left = False
else:
right = False
left = False
walkCount = 0
if not (isJump):
if keys [pygame.K_UP] and y > vel:
y -= vel
if keys [pygame.K_DOWN] and y < 600 - height - vel:
y += vel
if keys [pygame.K_SPACE]:
isJump = True
right = False
left = False
walkCount = 0
else:
if jumpCount >= -10:
neg = 1
if jumpCount < 0:
neg = -1
y -= (jumpCount ** 2) * 0.5 * neg
jumpCount -= 1
else:
isJump = False
jumpCount = 10
pygame.quit()
我在測試的時候,都是一樣先把聲音拉掉。
今天先說結果好了,每天都同一格式發文會痴呆吧...
結果就是...人物依然沒有成功顯示!
雖然今天沒有成功,但是弄懂了一些事情。
原先一直想不透前天的其中一個問題:FPS(畫面更新率),其中和幀數問題,結果真的在pygame也會遇到。
pygame 中的物件都是用圖片組成的,包括角色也是,藉由圖片相連接,視覺暫留原理,營造出角色移動的感覺。
因此,我昨天犯了一個錯,我去找了素材和教程,其中都會提到 Sprites
剛開始真的一頭霧水,滿腦子只想到我的飲料的愛牌...
今天終於弄懂了, Sprites
就是指螢幕上一個或多個圖片的呈現,原來自己下載那些圖片檔,這麼連續是有意義的,那個時候還想不透,為什麼網路上的素材包都這麼大方給這麼多張人物動作,其實是因為要做成動作的關係。
因為圖片要連接起來像影像,因此就會有幀數和畫面更新率的問題。
幀數過少會顯得很像lag,如果過多又會過快,但這也牽涉到顯示器的問題。不過不多加討論,畢竟問題都要解決不了了啊啊啊
因此,我似乎知道了該怎麼更改程式,不過好像有點耗時,還要再給我一天時間吧)?
好的...
又來了,即使接近比賽尾聲...
依然又要後補)掩面 嘆氣
另外,我在查資料的過程中,也在思考怎麼讓背景能夠滾動,讓角色看起來有在移動。
我查到的關鍵字是 scroll
捲動,但是我把它放在背景程式碼的後方,它依然沒有任何動靜)真的要欲哭無淚了我...
明天再來試其他方法好了。
鬧脾氣收工。